﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum СпособыОценкиСтоимостиВстречногоВыпуска
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"906a4e2d-ea28-4333-9d66-ef7ad06fd58d\", \"Представление\":\"ПоРасчетнойСтоимости\"}")]
		ПоРасчетнойСтоимости = 0,//По расчетной стоимости
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"55318139-f312-4125-9bf6-a68ebd38e7de\", \"Представление\":\"НеРассчитывается\"}")]
		НеРассчитывается = 1,//Не рассчитывается
	}
	public static partial class СпособыОценкиСтоимостиВстречногоВыпуска_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПоРасчетнойСтоимости = new Guid("7aef669d-6fd0-8dd5-4333-ea28906a4e2d");//По расчетной стоимости
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid НеРассчитывается = new Guid("8ea6f69b-38bd-dee7-4125-f31255318139");//Не рассчитывается
		public static СпособыОценкиСтоимостиВстречногоВыпуска Получить(this СпособыОценкиСтоимостиВстречногоВыпуска Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыОценкиСтоимостиВстречногоВыпуска Получить(this СпособыОценкиСтоимостиВстречногоВыпуска Значение, Guid Ссылка)
		{
			if(Ссылка == ПоРасчетнойСтоимости)
			{
				return СпособыОценкиСтоимостиВстречногоВыпуска.ПоРасчетнойСтоимости;
			}
			else if(Ссылка == НеРассчитывается)
			{
				return СпособыОценкиСтоимостиВстречногоВыпуска.НеРассчитывается;
			}
			return СпособыОценкиСтоимостиВстречногоВыпуска.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыОценкиСтоимостиВстречногоВыпуска Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыОценкиСтоимостиВстречногоВыпуска Значение)
		{
			switch (Значение)
			{
				case СпособыОценкиСтоимостиВстречногоВыпуска.ПоРасчетнойСтоимости: return ПоРасчетнойСтоимости;
				case СпособыОценкиСтоимостиВстречногоВыпуска.НеРассчитывается: return НеРассчитывается;
			}
			return Guid.Empty;
		}
	}
}